package com.teamone.etl.dataruleengine.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teamone.etl.dataruleengine.entity.RuleEngine;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * (RuleEngine)表数据库访问层
 *
 * @author makejava
 * @since 2021-01-12 21:04:40
 */
@Mapper
public interface RuleEngineDao extends BaseMapper<RuleEngine> {
    /**
     * 添加规则
     * @param ruleEngine  规则引擎对象
     */
    void addRuleEngine(RuleEngine ruleEngine);
    /**
     * 查看类/函数名称是否存在
     * @param functionName 类/函数名称
     * @return 规则引擎对象
     */
    RuleEngine getFunctionName(String functionName);
    /**
     * 查询
     *
     * @param codeTypeId    代码类型ID
     * @param name          规则引擎名称
     * @param functionName 类/函数名称
     * @return  部分数据
     */
    List<RuleEngine> ruleSearch(@Param("codeTypeId") String codeTypeId, @Param("name") String name, @Param("functionName") String functionName);

    /**
     * 修改
     *
     * @param ruleEngine 规则引擎对象
     */
    void updateRuleEngine(RuleEngine ruleEngine);

    /**
     * 回显
     *
     * @param id  主键
     * @return    规则引擎对象
     */
    RuleEngine getRuleEngineById(Integer id);


    /**
     *  逻辑删除
     * @param id  主键
     */
    void delRuleEngineById(Integer id);

    /**
     * 修改编译代码
     * @param ruleEngine 规则引擎对象
     */
    void updateCodes(RuleEngine ruleEngine);

    /**
     *
     * 逻辑删除
     *
     * @param id id
     * @param date 日期
     */
    void delRuleEngineById(@Param("id") Integer id, @Param("date") Date date);


    /**
     * 查询索引名称是否重复
     *
     * @param id 参数 id
     * @param name 索引名称
     * @return 符合条件 条数
     */
    int getFunctionNameCountAndNotMe(@Param("id") Integer id,@Param("name") String name);
}